﻿#include "address_book.h"
// C/C++ 学习网站：https://legacy.cplusplus.com 注意旧版本（搜索）和新版本

enum {
    quit = 0, // 枚举类型，新建联系人
    newMan,
    deleteMan,
    modifyMan,
    findMan,
    sortMan,
    showAllMan,
    cleanScreen,
    saveAllMan,
    impoetMassage
};

static void menu()
{
    printf("欢迎使用黑框框通讯录管理系统！\n");
    printf("### 请输入以下按键 #######\n");
    printf("### 1.新建联系人 #########\n");
    printf("### 2.删除联系人 #########\n");
    printf("### 3.修改联系人 #########\n");
    printf("### 4.查询联系人 #########\n");
    printf("### 5.联系人排序 #########\n");
    printf("### 6.查看所有联系人 #####\n");
    printf("### 7.清理显示屏 #########\n");
    printf("### 8.保存所有联系人 #####\n");
    printf("### 9.导入通讯录信息 #####\n");
    printf("### 0.退出 ###############\n");
    printf("请输入选项：");
}

void main_contact()
{ // 主函数
    //contact con; // 静态版本，定义联系人结构体
    contact con;
    // 初始化通讯录数组
    contact_init(&con);
    int choice;
    do
    {
        menu();
        int input1 = scanf("%d", &choice);
        clean_buffer();
        switch (choice)
        {
        case newMan:
            add_contact(&con);
            break;
        case deleteMan:
            delete_contact(&con);
            break;
        case modifyMan:
            modify_contact(&con);
            break;
        case findMan:
            select_contact(&con);
            break;
        case sortMan:
            sort_contact(&con);
            break;
        case showAllMan:
            printf("所有联系人如下：\n");
            show_contact(&con);
            break;
        case cleanScreen:
            system("cls"); // cleanScreen
            break;
        case saveAllMan:
            save_contact(&con);
            break;
        case impoetMassage:
            import_contact(&con);
            break;
        case quit:
            while (!con.save_flag)
            {
                printf("是否需要saveAllMan(Y/N)>");
                char save_flag;
                int save_num = scanf("%c", &save_flag);
                clean_buffer();
                if (save_flag == 'Y' || save_flag == 'y')
                    save_contact(&con);
                else if (save_flag == 'N' || save_flag == 'n')
                    break;
                else
                {
                    printf("输入错误，请重新输入！\n");
                    continue;
                }
            }
            printf("quit，欢迎下次使用！\n");
            free(con.data);
            con.size = 0;
            con.count = 0;
            con.data = NULL;
            return;
        default:
            printf("输入错误！\n");
            break;
        }
    } while (choice);
}

//int main()
//{
//    main_contact(); return 0;
//}
